from typing import Iterator, Type
from ctools.common import get_subclasses
from .fworkerbase import FileWorkerBase

# import subclass for interpreter
from .cfileviz import CFileHandler
from .pumlviz import PUmlFileHandler

def get_fileworker_classes() -> Iterator[Type[FileWorkerBase]]:
    clss = get_subclasses(FileWorkerBase, level=-1)
    return (cls for cls in clss if cls.can_work())
